package com.zretc.service;


import java.util.List;
import java.util.Map;

import com.zretc.entity.CollectionInfo;
import com.zretc.entity.CommentInfo;
import com.zretc.entity.CommentRelation;
import com.zretc.entity.UserInfo;

public interface UserService {

	/**
	 * @author qiaozhiyu
	 * 注册用户
	 * @param userInfo
	 * @return
	 */
	public int register(UserInfo userInfo);
	
	/**
	 * @author qiaozhiyu
	 * 判断用户名是否存在
	 * @param userName
	 * @return
	 */
	public Boolean existsOfUserName(String userName);
	
	/**
	 * @author qiaozhiyu
	 * 登录
	 * @param userName
	 * @param userPassword
	 * @return
	 */
	public UserInfo login(String userName, String userPassword);
	
	/**
	 * 点击星星将民宿信息添加到收藏夹
	 * @author liumeiqi777
	 * @param collectionInfo
	 * @return
	 */
	boolean saveCollectionInfoByStar(CollectionInfo collectionInfo);
	/**
	 * 再次点击星星取消收藏夹中的民宿信息
	 * @author liumeiqi777
	 * @param collectionInfo
	 * @return
	 */
	boolean removeCollectionInfoByStar(CollectionInfo collectionInfo);
	/**
	 * 根据收藏夹Id以及用户Id判断是否在该用户的收藏夹中被收藏
	 * @author liumeiqi777
	 * @param userId
	 * @param collectionId
	 * @return
	 */
	boolean findIfCollectionByCollectionIdAndUserId(String collectionId,Integer userId);
	/**
	 * 对订单添加一级评论
	 * @author liumeiqi777
	 * @param commentInfo
	 * @return
	 */
	boolean saveCommentInfo(CommentInfo commentInfo);
	/**
	 * 对评论进行回复
	 * @author liumeiqi777
	 * @param commentInfo，parentId
	 * @return
	 */
	boolean saveCommentInfoRelation(CommentInfo commentInfo);
	/**
	 * 根据房间id查询对该房间的所有评价（一级评论）
	 * @author liumeiqi777
	 * @param roomId
	 * @return
	 */
	List<Map<String, String>> findCommentInfos(String roomId);
	/**
	 * 根据父评论id查询子评论
	 * @author liumeiqi777
	 * @param parentId
	 * @return
	 */
	List<Map<String, String>> findChildrenComments(String parentId);
	
	/**
	 * 修改用户的密码，根据用户的编号
	 * @author 赵懒洋
	 * @param userNo
	 * @param password
	 * @return 影响行数
	 */
	boolean updateUserPassword(String userNo, String password);
}
